home *** CD-ROM | disk | FTP | other *** search
-
-
-
- GETRLIMIT C Library Procedures GETRLIMIT
-
-
-
- NNAAMMEE
- getrlimit, setrlimit - control maximum system resource con-
- sumption
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ttiimmee..hh>>
- ##iinncclluuddee <<ssyyss//rreessoouurrccee..hh>>
-
- ggeettrrlliimmiitt((rreessoouurrccee,, rrllpp))
- iinntt rreessoouurrccee;;
- ssttrruucctt rrlliimmiitt **rrllpp;;
-
- sseettrrlliimmiitt((rreessoouurrccee,, rrllpp))
- iinntt rreessoouurrccee;;
- ssttrruucctt rrlliimmiitt **rrllpp;;
-
- DDEESSCCRRIIPPTTIIOONN
- Limits on the consumption of system resources by the current
- process and each process it creates may be obtained with the
- _g_e_t_r_l_i_m_i_t call, and set with the _s_e_t_r_l_i_m_i_t call.
-
- The _r_e_s_o_u_r_c_e parameter is one of the following:
-
- RLIMIT_CPU the maximum amount of cpu time (in seconds)
- to be used by each process.
-
- RLIMIT_FSIZE the largest size, in bytes, of any single
- file that may be created.
-
- RLIMIT_DATA the maximum size, in bytes, of the data
- segment for a process; this defines how far
- a program may extend its break with the
- _s_b_r_k(2) system call.
-
- RLIMIT_STACK the maximum size, in bytes, of the stack
- segment for a process; this defines how far
- a program's stack segment may be extended.
- Stack extension is performed automatically
- by the system.
-
- RLIMIT_CORE the largest size, in bytes, of a _c_o_r_e file
- that may be created.
-
- RLIMIT_RSS the maximum size, in bytes, to which a
- process's resident set size may grow. This
- imposes a limit on the amount of physical
- memory to be given to a process; if memory
- is tight, the system will prefer to take
- memory from processes that are exceeding
- their declared resident set size.
-
- A resource limit is specified as a soft limit and a hard
-
-
-
- Sprite v1.0 April 3, 1987 1
-
-
-
-
-
-
- GETRLIMIT C Library Procedures GETRLIMIT
-
-
-
- limit. When a soft limit is exceeded a process may receive
- a signal (for example, if the cpu time or file size is
- exceeded), but it will be allowed to continue execution
- until it reaches the hard limit (or modifies its resource
- limit). The _r_l_i_m_i_t structure is used to specify the hard
- and soft limits on a resource,
-
- struct rlimit {
- int rlim_cur; /* current (soft) limit */
- int rlim_max; /* hard limit */
- };
-
- Only the super-user may raise the maximum limits. Other
- users may only alter _r_l_i_m__c_u_r within the range from 0 to
- _r_l_i_m__m_a_x or (irreversibly) lower _r_l_i_m__m_a_x.
-
- An "infinite" value for a limit is defined as RLIM_INFINITY
- (0x7fffffff).
-
- Because this information is stored in the per-process infor-
- mation, this system call must be executed directly by the
- shell if it is to affect all future processes created by the
- shell; _l_i_m_i_t is thus a built-in command to _c_s_h(1).
-
- The system refuses to extend the data or stack space when
- the limits would be exceeded in the normal way: a _b_r_e_a_k call
- fails if the data space limit is reached. When the stack
- limit is reached, the process receives a segmentation fault
- (SIGSEGV); if this signal is not caught by a handler using
- the signal stack, this signal will kill the process.
-
- A file I/O operation that would create a file larger that
- the process' soft limit will cause the write to fail and a
- signal SIGXFSZ to be generated; this normally terminates the
- process, but may be caught. When the soft cpu time limit is
- exceeded, a signal SIGXCPU is sent to the offending process.
-
- RREETTUURRNN VVAALLUUEE
- A 0 return value indicates that the call succeeded, changing
- or returning the resource limit. A return value of -1
- indicates that an error occurred, and an error code is
- stored in the global location _e_r_r_n_o.
-
- EERRRROORRSS
- The possible errors are:
-
- [EFAULT] The address specified for _r_l_p is invalid.
-
- [EPERM] The limit specified to _s_e_t_r_l_i_m_i_t would have
- raised the maximum limit value, and the
- caller is not the super-user.
-
-
-
-
- Sprite v1.0 April 3, 1987 2
-
-
-
-
-
-
- GETRLIMIT C Library Procedures GETRLIMIT
-
-
-
- SSEEEE AALLSSOO
- csh(1), quota(2), sigvec(2), sigstack(2)
-
- BBUUGGSS
- There should be _l_i_m_i_t and _u_n_l_i_m_i_t commands in _s_h(1) as well
- as in _c_s_h.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sprite v1.0 April 3, 1987 3
-
-
-
-